package com.hongdee.crm.task.dao;

import com.hongdee.base.basedao.IBaseDao;
import com.hongdee.crm.car.entity.TCrmCar;
import com.hongdee.crm.maintain.entity.TCrmCarMaintain;
import com.hongdee.crm.task.dto.WorkOrderDTO;
import com.hongdee.crm.task.entity.TCrmTask;
import com.hongdee.crm.workorder.entity.TCrmCarWorkOrder;

import java.util.List;
import java.util.Map;

/**
 * 名  称: ITCrmMaintainTaskDao
 * 类  型: interface
 * 描  述: 保养类任务相关
 * 路  径: com.hongdee.crm.task.dao
 * 作  者: wangshuai
 * 日  期:2017/2/28 10:23
 */
public interface ITCrmCarMaintainTaskDao extends IBaseDao {

    /**
     * 根据条件查询首保车辆
     * @param sqlStr 生成的sql语句
     * @param paramLists 查询参数
     * @return
     */
    public List<Map<String,Object>> carMaintainList(String sqlStr,List<Object> paramLists) throws Exception;

    /**
     * 根据条件查询定保信息
     * @param companyId
     * @param beforeSixTime
     * @param start
     * @param limit
     * @return
     * @throws Exception
     */
    public List<Map<String,Object>> carDbMaintainList(String companyId,long beforeSixTime,int start,int limit,String pcode,String code) throws Exception;

    /**
     * 获得所有的公司信息
     * @return
     * @throws Exception
     */
    public List<Map<String,Object>> findCompanyList(String mby,String mbr) throws Exception;

    /**
     * 根据公司获得相应配置信息
     * @param companyId
     * @param code
     * @return
     * @throws Exception
     */
//    public Map<String,Object> findCompanyParamList(String companyId,String code) throws Exception;

    public List<Map<String,Object>> findCompanyParamList(String companyId,String code) throws Exception;
    /**
     * 根据公司及车牌号获得保养时间
     * @param companyId
     * @param plateNum
     * @param carId
     * @return
     * @throws Exception
     */
    public Map<String,Object> findCarBlanceDate(String companyId,String plateNum,String carId) throws Exception;

    /**
     * 根据公司ID查询该公司下的工单信息
     * @param sql
     * @param companyId
     * @return
     * @throws Exception
     */
    public List<Map<String,Object>> findCarWorkOrderList(String sql,String companyId,int start,int limit)throws Exception;

    /**
     * 根据ID 获得工单详细信息
     * @param id
     * @return
     * @throws Exception
     */
    public TCrmCarWorkOrder findWorkOrderInfo(String id) throws Exception;

    /**
     * 批量更新工单信息
     * @param list
     */
    public void batchUpdateList(List<WorkOrderDTO> list);
    public void batchUpdateStrList(List<String> list);

    /**
     * 批量处理任务信息
     * @param lists
     */
    public void insertMaintailLists(final List<TCrmTask> lists);

    /**
     * 查询车辆所有的工单信息
     * @param carId
     * @param vin
     * @return
     * @throws Exception
     */
    public List<TCrmCarMaintain> findMaintainByCarId(String carId, String vin) throws Exception;
}
